package com.fbs.wowo.forum.service;

import com.fbs.wowo.forum.entity.Likes;

/**
 * 赞或踩
 * 赞：
 * 若没有赞 - 插入
 * 若已赞 - 取消赞
 * 若已赞并取消了 - 加上赞
 * 若赞后踩 - 先取消赞，然后踩
 *
 */
public interface LikesService {
    /**
     * 点赞
     * @param likes like
     * @return 点赞数
     */
    Integer add(Likes likes);

    /**
     * 踩
     * @param likes like
     * @return 点赞数
     */
    Integer minus(Likes likes);

    /**
     * 统计点赞数
     * @param entityId 被点赞的实体（文章，专辑，主播，直播间等）
     * @param entityType 被点赞的类型（文章，专辑，主播，直播间等）
     * @return 点赞数
     */
    Integer likes(String entityId, Integer entityType);

    /**
     * 获取点赞状态 （-1 踩 1 赞 0 没点）
     * @param likeEntity
     * @param likeType
     * @param userId
     * @return
     */
    Likes getLikes(String likeEntity, Integer likeType, String userId);

}
